<?php

/**
 *                  ********************
 *    ************ Tamogatok ADMIN CONTROLLER ************
 *                  ********************
 * 
 * 
 */
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Tamogatok extends Admin_Controller {

    function __construct() {
// Call the Model constructor
        parent::__construct();
        $this->load->model("tamogatok_model");
    }

    public function index() {
        $this->tamogato_list();
    }

    public function tamogato_list() {
        $this->data['title'] = "Támogatók";
        $this->data['dtables'] = array(
            'ajax_source_site_url' => 'admin/tamogatok/ajax_get_table',
            'table_name' => 'tamogatok_table',
            'table_fields' => array(
                'tamogato_id',
                'tamogato_nev',
                'tamogato_kep_url',
                'tamogato_url',
                'tamogato_suly',
                'tamogato_lathato'
            ),
            'edit_site_url' => 'admin/tamogatok/edit_tamogato',
            'ajax_delete_site_url' => 'admin/tamogatok/ajax_delete',
        );
        $this->_load_view('admin/tamogatok/tamogato_list_view', $this->data);
    }

    public function new_tamogato() {
        $this->data['title'] = "Támogatók";
        $this->_load_view('admin/tamogatok/tamogato_edit_view', $this->data);
    }

    public function edit_tamogato($id) {
        $this->data['title'] = "Tamogato szerkesztése";
        if (!isset($id)) {
            $this->session->set_flashdata('error_message', 'A szerkesztéshez id-t kell megadni.');
            redirect('admin/tamogatok');
        }
        $this->data['tamogato_data'] = $this->tamogatok_model->get_tamogato($id);
        $this->_load_view('admin/tamogatok/tamogato_edit_view');
    }

    public function add_tamogato() {
        $this->form_validation->set_rules('tamogato_kep_url', 'támogató kép url', 'required');
        $this->form_validation->set_rules('tamogato_nev', 'támogató név', 'trim|required');
        $this->form_validation->set_rules('tamogato_suly', 'támogató elhelyezkedése', 'trim|is_natural_no_zero|required');
        $this->form_validation->set_rules('tamogato_url', 'támogató url-je', 'trim|prep_url');
        $this->form_validation->set_rules('tamogato_lathato', 'támogat láthatósága', 'required');
        // set error delimiters
        $this->form_validation->set_error_delimiters('', '');
        if ($this->form_validation->run() == FALSE) {
            $this->new_tamogato();
            return;
        }
        // átjutunk az ellenőrzésen akkor lementjük az adatokat
        $tamogato_data = $this->input->post();

        // beletesszük a tamogato cim slug-ot
        // string helper kell az inkrementáláshoz
        $this->load->helper('string');

        // elmentjük
        $this->tamogatok_model->add_tamogato($tamogato_data);
        // legközelebb találkozunk, most lista.
        $this->session->set_flashdata('message', 'Az új tamogató: ' .
                $tamogato_data["tamogato_nev"] . ' sikeresen bekerült az adatbázisba.');
        redirect('admin/tamogatok');
    }

    public function update_tamogato($id) {
        if (!isset($id)) {
            $this->session->set_flashdata('error_message', 'A szerkesztéshez id-t kell megadni.');
            redirect('admin/tamogatok');
        }
        $this->form_validation->set_rules('tamogato_nev', 'támogató név', 'trim|required');
        $this->form_validation->set_rules('tamogato_kep_url', 'támogató kép url', 'required');
        $this->form_validation->set_rules('tamogato_suly', 'támogató elhelyezkedése', 'trim|required|is_natural_no_zero');
        $this->form_validation->set_rules('tamogato_url', 'támogató url-je', 'trim|prep_url');
        $this->form_validation->set_rules('tamogato_lathato', 'támogató láthatósága', 'required');
        // set error delimiters
        $this->form_validation->set_error_delimiters('', '');
        if ($this->form_validation->run() == FALSE) {
            $this->edit_tamogato($id);
            return;
        }

        // átjutunk az ellenőrzésen akkor lementjük az adatokat
        $tamogato_data = $this->input->post();

        // beletesszük az id-t
        $tamogato_data['tamogato_id'] = $id;

        // elmentjük
        $this->tamogatok_model->update_tamogato($tamogato_data);
        // legközelebb találkozunk, most lista.
        $this->session->set_flashdata('message', 'A tamogató: ' .
                $tamogato_data["tamogato_nev"] . ' adatai sikeresen módusultak.');
        redirect('admin/tamogatok');
    }

    public function ajax_delete($id) {
        try {
            $this->tamogatok_model->delete($id);
        } catch (Exception $e) {
            echo encode_json($e->getMessage());
            return;
        }
        echo encode_json("successful");
    }

    /**
     * 
     * Megnézzük, hogy az adott pozívióban van-e már támogató
     * 
     */
    function ajax_exists_at_position() {
        $this->output
                ->set_content_type('application/json');
        $all_post = $this->input->post();

        if ($all_post['reg_id'] == '') {
            $all_post['reg_id'] = NULL;
        }

        $at_position =
                $this->tamogatok_model
                    ->at_position($all_post['position'], $all_post['reg_id']);
        
        if(!$at_position){
            $return['free'] = 'true';
        }else{
            $return['free'] = 'false';
            $return['tamogato_nev'] = $at_position->tamogato_nev;
        }
        echo encode_json($return);
    }

    /**
     * Datatables-hez
     */
    public function ajax_get_table() {
        /**
         * Ami bejön és fontos:
         * iDisplayStart
         * iDisplayLength
         * sSearch
         * sEcho    _ XSS protection
         * 
         * 
         * Ami kimegy:
         * 
         * iTotalRecords
         * iTotalDisplayRecords
         * sEcho
         * aaData
         */
        // elkérjük az összes postolt adatot
        $all_post = $this->input->post();

        //var_dump($all_post);
        // megnézzük mennyi column van a táblázatban
        $number_of_columns = $all_post['iColumns'];

        // megnézzük kell-e keresni valamire
        ($all_post['sSearch'] != '') ? $search_like = $all_post['sSearch'] : $search_like = NULL;

        // csinálunk egy listát a megjelítendő változókról
        // azaz adatbázisból az oszlopokról
        $select_from_database = "";
        for ($i = 0; $i < $number_of_columns; $i++) {
            $select_from_database .= $all_post["mDataProp_$i"];
            //a vesszőt az utolsóig hozzáadja, mivel ez felsorolás
            if ($i < $number_of_columns - 1)
                $select_from_database.=", ";
        }

        // SORBARENDEZÉS IMPLEMENTÁLÁSA
        // megszerezzük mi szerint kell sortolnunk
        $sort_by_id = $all_post["iSortCol_0"];
        // így megkapjuk a nevét
        $order_by = $all_post["mDataProp_$sort_by_id"];
        // és most hozzáadjuk az irányt
        $order_dir = $all_post["sSortDir_0"];

        // összeállítjuk a lekérést, amit a modelnek küldünk.
        $tamogatok_request = array(
            // keresés
            'search_like' => $search_like,
            // kiválasztás
            'select' => $select_from_database,
            // limit&offset
            'limit' => $all_post['iDisplayLength'],
            'offset' => $all_post['iDisplayStart'],
            'order_by' => $order_by,
            'order_dir' => $order_dir
        );

        $tamogatok = $this->tamogatok_model->get_tamogatok($tamogatok_request);

        foreach ($tamogatok as $tamogato) {
            $tamogato->DT_RowId = "tamogato_id_" . $tamogato->tamogato_id;
            $tamogato->tamogato_kep_url = "<img class=\"tableSponsorPic\" src=\"$tamogato->tamogato_kep_url\" />";
            if($tamogato->tamogato_lathato == 1){
                $tamogato->tamogato_lathato = 'igen';
            }else{
                $tamogato->tamogato_lathato = 'nem';
            }
        }

        $data["iTotalRecords"] = $this->tamogatok_model->count();
        $data["iTotalDisplayRecords"] = $data["iTotalRecords"];
        $data["sEcho"] = $all_post["sEcho"];
        $data["aaData"] = $tamogatok;

        echo encode_json($data);
    }

}